////
////  PicTextrg.swift
////  ptbuy
////
////  Created by MyMac on 2024/11/8.
////
//
///**
// 拍照/照片识别文字
// */
//import SwiftUI
//import AVFoundation
//import Vision
//struct PicTextrg: View {
//    @State private var permissionStatus: AVAuthorizationStatus = .notDetermined
//    
//    
//    @State private var isImagePickerPresented = false
//    @State private var selectedImage: UIImage?
//    @State private var imagePath: String?
//    
//    
//    @State private var recognizedText: String = ""
//    @State private var editedText: String = ""
//
//    
//    var body: some View {
//        VStack {
//            if permissionStatus == .authorized {
//                Text("相机权限已授予，您可以使用相机。")
//                
//                VStack {
//                    if let selectedImage = selectedImage {
//                        Image(uiImage: selectedImage)
//                            .resizable()
//                            .scaledToFit()
//                            .frame(width: 300, height: 100)
//                               
//                        
//                        Text("识别到的文字：")
//                            .font(.headline)
//                                        
//                        Text(editedText.isEmpty ? recognizedText : editedText)
//                            .padding()
//                            .font(.body)
//                                        
//                        EditTextView(text: $editedText)
//                        
//                        if let path = imagePath {
//                            Text("Image saved at: \(path)")
//                                .font(.caption)
//                                .foregroundColor(.gray)
//                        }
//                    } else {
//                        Text("No image selected")
//                            .font(.headline)
//                    }
//                           
//                    Button("识别文字") {
//                        if let image = selectedImage {
//                            recognizeText(from: image) { text in
//                                recognizedText = text ?? "没有识别到文本"
//                                editedText = recognizedText
//                            }
//                        }
//                    }
//                    .padding()
//                                
//                    Button("保存修改") {
//                        if let image = selectedImage {
//                            if let newImage = drawTextOnImage(
//                                image: image,
//                                text: editedText
//                            ) {
//                                selectedImage = newImage
//                            }
//                        }
//                    }
//                    .padding()
//                    
//                    Button(action: {
//                        isImagePickerPresented = true
//                    }) {
//                        Text("Take Photo")
//                            .font(.title)
//                            .padding()
//                            .background(Color.blue)
//                            .foregroundColor(.white)
//                            .cornerRadius(10)
//                    }
//                    .sheet(isPresented: $isImagePickerPresented) {
//                        ImagePicker(isImagePickerPresented: $isImagePickerPresented,
//                                    selectedImage: $selectedImage,
//                                    imagePath: $imagePath)
//                    }
//                }
//                .padding()
//                
//            } else if permissionStatus == .denied {
//                Text("相机权限已被拒绝，请前往设置中开启权限。")
//                Button("前往设置") {
//                    if let settingsURL = URL(
//                        string: UIApplication.openSettingsURLString
//                    ) {
//                        UIApplication.shared.open(settingsURL)
//                    }
//                }
//            } else {
//                Text("请求相机权限...")
//                    .onAppear {
//                        requestCameraPermission()
//                    }
//            }
//        }
//        .onAppear {
//            checkCameraPermission()
//        }
//    }
//    func recognizeText(from image: UIImage, completion: @escaping (String?) -> Void) {
//        guard let cgImage = image.cgImage else {
//            completion(nil)
//            return
//        }
//        
//        let request = VNRecognizeTextRequest { request, error in
//            guard error == nil else {
//                completion(nil)
//                return
//            }
//            
//            var recognizedText = ""
//            for observation in request.results as? [VNRecognizedTextObservation] ?? [] {
//                if let topCandidate = observation.topCandidates(1).first {
//                    recognizedText += topCandidate.string + "\n"
//                }
//            }
//            
//            completion(recognizedText.isEmpty ? nil : recognizedText)
//        }
//        
//        let requestHandler = VNImageRequestHandler(cgImage: cgImage, options: [:])
//        do {
//            try requestHandler.perform([request])
//        } catch {
//            completion(nil)
//        }
//    }
//    func drawTextOnImage(image: UIImage, text: String) -> UIImage? {
//        UIGraphicsBeginImageContextWithOptions(image.size, false, image.scale)
//        image.draw(at: .zero)
//
//        let attributes: [NSAttributedString.Key: Any] = [
//            .font: UIFont.systemFont(ofSize: 40),
//            .foregroundColor: UIColor.red
//        ]
//
//        let rect = CGRect(
//            x: 20,
//            y: 20,
//            width: image.size.width - 40,
//            height: image.size.height - 40
//        )
//        text.draw(in: rect, withAttributes: attributes)
//
//        let newImage = UIGraphicsGetImageFromCurrentImageContext()
//        UIGraphicsEndImageContext()
//
//        return newImage
//    }
//    
//    func checkCameraPermission() {
//        permissionStatus = AVCaptureDevice.authorizationStatus(for: .video)
//    }
//
//    func requestCameraPermission() {
//        AVCaptureDevice.requestAccess(for: .video) { response in
//            DispatchQueue.main.async {
//                permissionStatus = AVCaptureDevice
//                    .authorizationStatus(for: .video)
//            }
//        }
//    }
//}
//
//
//#Preview {
//    PicTextrg()
//}
